# conding = utf-8
# 请求模块的封装
import requests
from requests import Session

from config import base_url


class Request():
    # 初始化一个session对象，默认是空的
    __Session: Session = None

    def __init_session(self):
        '''
        加载session对象
        :return:
        '''
        if Request.__Session is None:
            # 如果session对象不存在，那么就创建一个session对象
            Request.__Session = requests.session()
        return Request.__Session;

    def call(self, path, method, **kwargs):
        '''
        请求发起
        :param path: 请求地址
        :param method: 请求方式
        :param kwargs: 请求的其他参数
        :return: 返回请求结果（响应）
        '''
        url = f"{base_url}{path}";
        return self.__init_session().request(url=url, method=method, **kwargs)

    def update_headers(self, header: dict):
        '''
        设置更新请求中的请求头（注意是通用请求头更新，一旦更新那么所有的请求都会有这个请求头）
        :param header: 传入必须是字典
        :return: 没有返回
        '''
        self.__init_session().headers.update(header)
